Computer aided systems and methods for creating custom products

ABSTRACT

A computer-aided design (CAD) system enables physical articles to be customized via printing or embroidering and enables digital content to be customized and electronically shared. A CAD user interface may be generated that includes an image of a model of an article of manufacture and a customizable template. The customizable template may include user customizable design areas. One or more defined rules associated with respective customizable areas may be accessed. In response to a user selection of a default content item and a corresponding rule, content items may be automatically used to populate other template design areas and/or change a color of one or content items. Manufacturing instructions corresponding to the user customizations may be transmitted to a printing system using a file that includes location, rotation, and/or scale data.

INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS

Any and all applications for which a foreign or domestic priority claimis identified in the Application Data Sheet as filed with the presentapplication are hereby incorporated by reference under 1 CFR 1.57.

BACKGROUND

The present invention is generally related to computer aided design andthe manufacture of custom products.

DESCRIPTION OF THE RELATED ART

Computer-Aided Design (CAD) systems are conventionally used to designarticles of manufacture. However, such conventional CAD systems oftenhave overly difficult to use user interfaces, do not adequately ensurecompliance with manufacturing processes, and do not provide adequatemechanisms for a manufacturer to provide flexibility for users tocustomize articles of manufacture.

SUMMARY

The following presents a simplified summary of one or more aspects inorder to provide a basic understanding of such aspects. This summary isnot an extensive overview of all contemplated aspects, and is intendedto neither identify key or critical elements of all aspects nordelineate the scope of any or all aspects. Its sole purpose is topresent some concepts of one or more aspects in a simplified form as aprelude to the more detailed description that is presented later.

An aspect of the disclosure relates to a computer-aided design systemthat enables physical articles to be customized via printing,embroidering, or otherwise, and enables digital content to be customizedand electronically shared. A user interface may be generated thatincludes an image of a model of an article of manufacture and usercustomizable design areas. A design customization user interface may beprovided enabling a user to access a customizable template comprisingone or more design areas (sometimes referred to as slots) for use inobject customization. The user may be enabled to select or specifydesign elements that may be used to customize the object using thecustomizable template. Rules may be utilized to propagate a user inputwith respect to one design area to other design areas. Manufacturinginstructions corresponding to the user customizations may be transmittedto a printing system using a file that includes location, rotation,and/or scale data.

An aspect of the present disclosure relates to a computer-aided design(CAD) computer system comprising: a computing device; a networkinterface; a non-transitory data media configured to store instructionsthat when executed by the computing device, cause the computing deviceto perform operations comprising: provide a design rule definition userinterface comprising: a conditional specification user interfacecomprising: a first field configured to receive a specification of: afirst template slot and associated slot content for a first customizabletemplate; a second field configured to receive a specification of: asecond template slot and associated slot content specification for thefirst customizable template; an operator field configured to receive anoperator specification that relates the first slot and associated slotcontent specification with the second slot and associated slot contentspecification; a consequent specification user interface comprising: athird field configured to receive a specification of: a third templateslot and associated slot content specification for the firstcustomizable template; receive, via the network interface from a userdevice of a user, a user selection of an image of a product from aninteractive catalog; enable a representation of the product to bepresented on the user device; receive a user selection of the firstcustomizable template; access one or more rules associated with thefirst customizable template, the accessed rules defined using the designrule definition user interface; access a data source locator associatedwith the first customizable template; access data using the data sourcelocator; enable at least a portion of the first customizable templatepopulated using the data accessed using the data source locator to bepresented by the user device via a computer aided design user interface;receiving a user customization of a first rendered template slot;determining if the user customization of the first rendered templateslot violates a first rule; at least partly in response to determiningthat the user customization of the first rendered template slot violatesthe first rule, reversing the user customization of the first templateslot; receiving a user customization of a second rendered template slot;using a second rule to modify a third rendered template slot based atleast in part on the user customization of the second rendered templateslot; causing the first customizable template, as customized by theuser, to be printed or embroidered on a physical instance of theproduct.

An aspect of the present disclosure relates to a computer-implementedmethod, the method comprising: receiving, over a network at a computersystem, a first rule via a design rule definition user interface, thedesign rule definition user interface comprising: a conditionalspecification user interface comprising: a first field configured toreceive a specification of: a first template slot and associated slotcontent specification for a first customizable template; a second fieldconfigured to receive a specification of: a second template slot andassociated slot content specification for the first customizabletemplate; an operator field configured to receive an operatorspecification that relates the first slot and associated slot contentspecification with the second slot and associated slot contentspecification; a consequent specification user interface comprising: athird field configured to receive a specification of: a third templateslot and associated slot content specification for the firstcustomizable template; wherein the first rule is associated with thefirst customizable template, the first rule comprising a firstconditional specification and a first consequent specification;receiving, over the network at the computer system from a user device ofa user, a user selection of an image of an object; enabling arepresentation of the object to be presented on the user device;accessing at least the first rule associated with the first customizabletemplate; accessing a data source locator associated with the firstcustomizable template; accessing data using the data source locator;enabling at least a portion of the first customizable template populatedusing the data accessed using the data source locator to be presented bythe user device via a customization user interface; receiving a userinput with respect to a first depicted template slot via thecustomization user interface; using the first rule to modify a seconddepicted template slot based at least in part on the user input withrespect to the first depicted template slot; enabling the firstcustomizable template, as customized by the user, to be printed orembroidered on a physical instance of the object and/or for anelectronic file corresponding to the object customized using the firstcustomizable template to be electronically distributed.

An aspect of the present disclosure relates to a computer systemcomprising: a computing device; a network interface; a non-transitorydata media configured to store instructions that when executed by thecomputing device, cause the computing device to perform operationscomprising: receive, using the network interface, a first rule via adesign rule definition user interface comprising: a conditionalspecification user interface comprising: a first field configured toreceive a first template slot and associated slot content specificationfor a first customizable template; a second field configured to receivea second template slot and associated slot content specification for thefirst customizable template; an operator field configured to receive anoperator specification that relates the first slot and associated slotcontent specification with the second slot and associated slot contentspecification; a consequent specification user interface comprising: athird field configured to receive a third template slot and associatedslot content specification for the first customizable template; whereinthe first rule is associated with the first customizable template, thefirst rule comprising a first conditional specification and a firstconsequent specification; receive, using the network interface from auser device of a user, a user selection of an image of an object; enablea representation of the object to be presented on the user device;access at least the first rule associated with the first customizabletemplate; access a data source locator associated with the firstcustomizable template; access data using the data source locator; enableat least a portion of the first customizable template to be populatedusing the data accessed using the data source locator; enable at least aportion of the first customizable template populated using the dataaccessed using the data source locator to be presented by the userdevice via a customization user interface; enable the first rule tomodify a second depicted template slot based at least in part on a userinput with respect to the first depicted template slot; enable the firstcustomizable template, as customized by the user, to be printed orembroidered on a physical instance of the object and/or for anelectronic file corresponding to the object customized using the firstcustomizable template to be electronically distributed.

An aspect of the present disclosure relates to a computer implementedmethod, the method comprising: receiving a first rule via acorresponding user interface, the corresponding user interfacecomprising: a conditional specification user interface comprising: afirst field configured to receive a first template slot and associatedslot content specification for a first customizable template; a secondfield configured to receive a second template slot and associated slotcontent specification for the first customizable template; an operatorfield configured to receive an operator specification that relates thefirst slot and associated slot content specification with the secondslot and associated slot content specification; a consequentspecification user interface comprising: a third field configured toreceive a third template slot and associated slot content specificationfor the first customizable template; wherein the first rule isassociated with the first customizable template, the first rulecomprising a first conditional specification and a first consequentspecification received via the consequent specification user interface;receiving a user selection of an object; enabling a representation ofthe object to be presented on the user device; accessing at least thefirst rule associated with the first customizable template; accessing adata source locator associated with the first customizable template;accessing data using the data source locator; enabling at least aportion of the first customizable template to be populated using thedata accessed using the data source locator; enabling at least a portionof the first customizable template populated using the data accessedusing the data source locator to be presented by the user device via acustomization user interface; enabling the first rule to modify a seconddepicted template slot based at least in part on a user input withrespect to the first depicted template slot; enabling the firstcustomizable template, as customized by the user, to be printed orembroidered on a physical instance of the object and/or for anelectronic file corresponding to the object customized using the firstcustomizable template to be electronically distributed.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will now be described with reference to the drawingssummarized below. Throughout the drawings, reference numbers may bere-used to indicate correspondence between referenced elements. Thedrawings are provided to illustrate example embodiments described hereinand are not intended to limit the scope of the disclosure.

FIG. 1A is a block diagram illustrating an example embodiment of anoperating environment.

FIG. 1B is a block diagram illustrating an embodiment of examplecomponents of a computer aided design (CAD) computing system capable ofproviding product customization services.

FIGS. 2A-2B illustrate an example process.

FIGS. 3A-3G illustrate example interfaces.

DESCRIPTION

Systems and methods are described that provide computer aided design ofcustomized items (e.g., physical or digital objects). Non-limitingexamples of such items may include t-shirts, hoodies, shirts, jackets,dresses, pants, glasses, phone cases, laptop skins, backpacks, laptopcases, tablet cases, hairbands, wristbands, jewelry, digital content,and the like. Techniques, processes and user interfaces are disclosedthat enable more efficient and accurate generation, editing, andprinting or embroidering of design elements. Because the resultingcustomized items will more closely reflect user-desired customizations,there may be less wastage of materials (e.g., item fabric, ink, etc.),as there will be fewer defective or unsatisfactory customized items.

The user may utilize the CAD system to select an object to customize(e.g., t-shirts, hoodies, shirts, jackets, dresses, pants, glasses,phone cases, laptop skins, backpacks, laptop cases, tablet cases,hairbands, wristbands, jewelry, digital content, and the like) from aninteractive catalog of objects, and may then customize the object usingdesign elements/templates from a library of design elements/templates(e.g., tournament/match brackets, sport paraphernalia (e.g., sportclothing, sports equipment (e.g., basketball, baseball, football, soccerball, hockey puck, basketball hoop, basketball net, football goal post,hockey goal, baseball bat, hockey stick, etc.), team names, team logos,league names, league logos, and/or the like), and/or user-providedcontent (e.g., uploaded images or text).

Where the customized object is a digital object (e.g., a displayableelectronic image customized by the user), the user-customized object maybe transmitted to and displayed by a display (e.g., a large screendisplay at a venue during an event) and/or shared via social media orother communication channels (e.g., short messaging service messages,email, or otherwise).

Optionally, the CAD system may enable an item (e.g., a product) providerto submit (e.g., via an upload or by providing a link) one or moreimages of the item (e.g., a photograph or graphic image of the front,back, left side, right side, top view, bottom view, and/or interior viewof the item) and/or portions of the item (e.g., left sleeve, rightsleeve, shoe lace, strap, etc.) for posting to an online interactivecatalog of one or more items. The CAD system may enable certaincustomization options to be enabled for users and may enable thedefinition of certain areas of the item which may or may not becustomized by users.

An example CAD system may provide a user interface including a designarea and a set of tools via which a product provider can specify and/orapply design elements (e.g., text, image, and/or a graphic designelements) to an object product, specify areas to which an end user mayspecify design elements to be applied (e.g., printed or embroidered),specify permitted end user modifications to a design element originallyspecified by the product provider (that the system may perform inresponse to an end user request), specify permitted design element typesand characteristics that the system may apply to the product in responseto an end user request.

Optionally, as noted above, the CAD system may provide predefinedtemplates for customizing objects which the user may edit. Optionally,rules may be defined that limit modifications the user may make to thetemplate. Examples of CAD systems, and examples of such rules, andsystems and methods for enforcing and implementing such rules aredescribed in U.S. application Ser. No. 16/690,029, filed Nov. 20, 2019,titled COMPUTER AIDED SYSTEMS AND METHODS FOR CREATING CUSTOM PRODUCTS,now U.S. Pat. No. 10,922,449, the contents of which are incorporatedherein in their entirety.

Templates, including image templates, text templates, and templates thatinclude both image(s) and text may be presented by the CAD system to anend-user to provide the end-user with a starting point for customizationof an object, thereby simplifying the customization process. A giventemplate may include one or more design areas, sometimes referred toherein as slots. The template may optionally include non-removable ornon-editable design elements, and/or removable or editable designelements in respective slots. A template, by way of example, may includetext, a digital sticker (e.g., a licensed cartoon character image), alogo, an image of a person (e.g., images of the user, an athlete, ateam, performers, and/or the like), a graphic (e.g., a tournament/matchbracket, graphics/images of sport paraphernalia (e.g., sport clothing,sports equipment (e.g., basketball, baseball, football, soccer ball,hockey puck, basketball hoop, basketball net, football goal post, hockeygoal, baseball bat, hockey stick), team names, team logos, league names,league logos, and/or the like), etc. A template may be editable by theend-user in accordance with item provider and/or template providerrestrictions.

A template may be associated with rules that may automatically propagateuser template edits or selection to other slots and/or design elementsof the template and where the template may be associated with rules thatmay prevent user modifications of the template that would beincompatible with what a design element corresponds to.

For example, if a user enters text or causes text to be entered into atemplate field (e.g., the name of a sports team), a color of anotherdesign element (e.g., a basketball) may be automatically changed tomatch the sports team's color. By way of further example, if thetemplate includes a tournament/match bracket where the user may select awinning team in one round, a rule may be prevent the user from insertingthe losing team at a later round. By way of further example, if a matchhas already taken place and the template is prepopulated with the matchwinner at the corresponding bracket branch, the user may be inhibitedfrom changing the match winner.

By way of further example, with respect to entertainment applications,if a user selects from a gallery of images an image of an actor in orhost of a show, the name of the show and/or show logos may automaticallypopulate corresponding template slots. By way of yet further example, ifa user selects, with respect to a template slot, an image of a movie orshow character from a gallery of character images, other slots may bepopulated with images of other characters from the show or movie.

A user interface may be provided via which an item provider may specifywhich colors in a given image can or cannot be changed. By way offurther example, a user interface may be provided via which an itemprovider may specify which portions of an image may or may not beedited. By way of still further example, a user interface may beprovided via which an item provider may specify design element sizechange restrictions (e.g., a maximum and/or a minimum height or width),restrict adding one or more specified colors to a design element,restrict changes to design element orientation (e.g., maximum and/orminimum rotation angle), restrict changes to text content (e.g., preventchanges to one or more words in a text design element), restrict changesto a design template height/width ratio, restrict changes to one or morefonts, restrict the use of one or more effects (e.g., text curvatureeffects, 3D effects, etc.), and/or the like. By way of yet furtherexample, a user interface may be provided via which a user may specifyplacement/movement restrictions for templates, images and/or text.

By way of further example, a user interface may be provided via which auser may specify that certain text and/or image notifications (e.g.,copyright notices, trademark notices) or logos may not be removed and/oraltered. By way of additional example, a user interface may be providedvia which a user may specify that the certain design elements may not beused together to customize an object. By way of further example, a userinterface may be provided via which a user may specify that the certaintypes of design elements (e.g., images of alcohol, drugs, drugparaphernalia, religious symbols, celebrities, etc.) may not be used tocustomize an object.

By way of yet further example, a user interface may be provided viawhich a user may specify propagation rules, wherein if a user selects,enters, or modifies a given design element, other template designelements may automatically be replaced or modified accordingly.

For example, as described elsewhere herein, a template may include atournament bracket that may be customizable by a user. The tournamentbracket may correspond to a multi-stage sports, game show, talentcompetition, or other tournament, where the top or winning participants(e.g., sports teams or individuals) of one stage progress to the nextstage, while the losing participants may be eliminated from further playin the tournament. A tournament may be an elimination tournament (e.g.,a single elimination tournament, a double elimination tournament, etc.).By way of illustrative example, the user may, via a corresponding userinterface, customize a bracket by selecting winners of each stage of thecompetition, and where the identifiers associated with the winners(e.g., a team name, nickname, logo, image of a team player, and/or thelike) will be respectively displayed on corresponding branches of thebracket.

By way of illustration, the NCAA (National Collegiate AthleticAssociation) Division I men's basketball tournament is asingle-elimination tournament of 68 teams that compete in seven roundsfor the national championship. The penultimate round, with only fourteams remaining, is commonly referred as the Final Four. The stage atwhich there are only eight teams remaining is often referred to as theElite 8, and the stage at which there are only sixteen teams remainingis often referred to as the Sweet 16.

The teams that participate in the tournament include automaticqualifiers (where the 32 Division I conferences all receive an automaticbid, which they each award to the team that wins the correspondingpostseason conference tournament) and at-large bids (where a selectioncommittee selects 36 teams that are not automatic qualifiers to beinvited to participate in the tournament). The 68 teams are divided intofour regions and organized into a single-elimination “bracket”, whichpre-determines, when a team wins a game, which team it will face next.Each team is “seeded”, or ranked, within its region from 1 to 16. Teams,seeded by rank, proceed through a single-game elimination bracketbeginning with a “first four” consisting of 8 low-seeded teams playingin 4 games for a position in the first round before the first roundbegins, a first round consisting of 64 teams playing in 32 games, thenthe second round of 32 teams in 16 games, followed by 16 teams in 8games (the “Sweet 16”), following by 8 teams in 4 games (the “Elite 8”),the “Final Four” round, with one from each region (East, South, Midwest,and West), and then the national championship game with the two winnersof the Final Four.

The tournament and its progression may be represented by a graphic,known as a bracket which may be in the form of a tree diagram thatrepresents the series of games. In the NCAA basketball tournament, thebracket is a horizontal tree-like grid of all the teams in thetournament and the path the teams have to follow to be in the Sweet 16,Elite 8, and Final Four, and in the final game (the championship game).The outermost bracket is optionally filled using the seeding of the 64teams. Fans enjoy filling out the remainder of the bracket using theirpredictions as to which team will win each game at each stage. However,given the complex number of possible permutations, no one hassuccessfully filled out a perfect bracket.

Certain aspects of the disclosure will now be discussed with referenceto the figures.

An example system architecture that may be utilized to provide computeraided design and manufacturing services will now be discussed withreference to FIG. 1A. The various systems and devices may communicatewith each other over one or wired and/or wireless networks 114. In theillustrated embodiment, a computer aided design (CAD) system 102 may behosted on one or more servers. The CAD system 102 may be cloud-based andmay be accessed by one or more clients 110, 112 (e.g., associated withan item provider or end user) over a network 114 (e.g., the Internet,Ethernet, or other wide area or local area network). Client terminals110, 112 may be able to share software applications, computingresources, and data storage provided by the CAD system 102.

The client terminals may be in the form of a desktop computer, laptopcomputer, tablet computer, mobile phone, smart television, dedicated CADterminal, or other computing device. A client terminal may include userinput and output devices, such a displays (touch or non-touch displays),speakers, microphones, trackpads, mice, pen input, printers, hapticfeedback devices, cameras, and the like. A client terminal may includewireless and/or wired network interfaces via which the client terminalmay communicate with the CAD system 102 over one or more networks. Aclient terminal may optionally include a local data store that may storeCAD designs which may also be stored on, and synchronized with, a clouddata store.

User interfaces described herein are optionally configured to presentuser edits or customizations (e.g., edits to images, text, item colors,or the like) in real time as applied to an item image to thereby ensureenhanced accuracy, reduce the possibility of user error, and so make thecustomization process more efficient. The user interfaces may presentcontrols and renderings to further ease the specification ofcustomization permissions by item providers, and to ease customizationsof items by end users.

Optionally, a version of the user interfaces described herein may beenhanced for use with a small screen (e.g., 4 to 8 inches diagonal),such as that of a mobile phone or small tablet computer. For example,the orientation of the controls may be relatively more vertical ratherthan horizontal to reflect the height/width ratio of typical mobiledevice display. Further, the user interfaces may utilize contextualcontrols that are displayed in response to an inferred user desire,rather than displaying a large number of tiny controls at the same time(which would make them hard to select or manipulate using a finger). Forexample, if a user touches an image template in a template gallery, itmay be inferred that the user wants to add the image template to apreviously selected item design area and to then edit the imagetemplate, and so the selected image template may be automaticallyrendered in real time on the selected item design area on a model/imageof a product in association with permitted edit tools.

Further, optionally user interfaces described herein may enable a userto expand or shrink a design element using a multi-touch zoom gesture(where the user touches the screen with two fingers and moves thefingers apart) or a multi-touch pinch gesture (where the user touchesthe screen with two fingers and moves the fingers together) to furtherease editing of a design element and ease specification of a design areaor editing restrictions. Optionally, a user interface may enable a userto resize a design element using a one finger icon drag/pull.

Optionally, a resizing control may be provided which enables the user toquickly resize a design element to an appropriate size. For example, ifan existing design element is sized for a shirt pocket, the resizingcontrol may enable the user to instruct the system to automaticallyresize the design element for another selected area, such as a chestarea or a sleeve area.

Optionally, user interfaces may be configured to respond to a user swipegesture (e.g., a left or a right swipe gesture using one or morefingers) by replacing a currently displayed design element (e.g., atemplate) on an item model with another design element (e.g., anothertemplate in a set of templates), sometimes referred to herein asperforming a swapping operation. Optionally, if a user has edited afirst design element and then used a swipe gesture to replace the designelement with a second design element, some or all of the edits made tothe first design element (e.g., height edit, width edit, color edit, orthe like) may be automatically applied to the second design element.

Optionally, in response to a swipe gesture (e.g., an up or down swipegesture) a user interface may display metadata related to the displayeditem and/or item customizations (e.g., cost, shipping time, item size,etc.) or other notifications.

Optionally, in response to a gesture (e.g., an up/down or left/rightswipe) the product on which the design element is displayed is changed.For example, if a design element is displayed on a model of a jacket,the gesture may cause the same design element (optionally with any useredits) to be displayed in real time on another item model (e.g., at-shirt or a different jacket style) in place of the original jacketmodel.

The CAD system 102 may provide tools to graphically construct computermodels of and to modify computer models of products such t-shirts,hoodies, shirts, jackets, dresses, pants, glasses, phone cases, laptopskins, backpacks, laptop cases, tablet cases, hairbands, wristbands,jewelry, and the like.

The CAD system 102 tools may include tools for specifying and/orapplying design elements (e.g., text, image, and/or a graphic designelements) to a product, specify areas to which an end user may applydesign elements, specify permitted end user modifications to a designelement and/or specify permitted design element types andcharacteristics that the system may apply to the product in response toan end user request. Optionally, collaboration tools are provided thatenable users (e.g., end users, or a graphic designer and an itemprovider) to collaborate with each other and/or the item provider oncustomizations for a given product.

The CAD system 102 may optionally generate, based on an end-user designor design modification, corresponding order forms and/or manufacturinginstructions. Some or all of the information generated by the CAD system102 may be provided to an inventory/ordering system 104, a manufacturingsystem 106, a packing/shipping system 108, and/or an analysis engine118. Some are all of the foregoing systems may optionally be cloudbased. Optionally, the CAD system 102, inventory/ordering system 104,manufacturing system 106, packing/shipping system 108, and/or analysisengine 118 may be the same system and may be operated by the sameentity, or may be separate systems operated by separate entities.

Optionally some or all of the services provided by the CAD system 102,inventory/ordering system 104, manufacturing system 106,packing/shipping system 108, and/or analysis engine 118 may be accessedvia one or more APIs by authorized third party systems. For example, asports league or federation may provide access to the services(including some or all the user interfaces) to enable visitors of theirwebsite to use logos, team names, brackets, and images of players tocustomize physical and/or digital items. By way of further example, athird party CAD system used to customize physical and/or digital itemsmay access the services to access restrictions and/or permissions(rules) specified for design elements that users of the third party CADsystem are modifying or otherwise using. For example, the third partyCAD system may generate a request for usage rules, where the request mayidentify the design element that a user wishes to use (e.g., customize,combine with other content, electronically distribute, print, etc.). TheCAD system may generate a corresponding response to the query thatincludes usage rules. The third party CAD system may utilize theservices to determine if a given modification or other use satisfies therules.

The CAD system 102 may also enable conditional rules to be defined(e.g., if-then rules) that enable a user input/customization withrespect to one design element in a slot to cause another slot to becustomized in accordance with the conditional rules.

The CAD system 102 may optionally generate directives in the form ofmanufacturing machine instructions for applying (e.g., printing orembroidering). For example, design files may be provided that include animage file (e.g., in raster graphics file format, such as a portablenetwork graphics file) and screenshots of the user customized item.Optionally the image file may support RGB color spaces and/or non-RGBcolor spaces (e.g., CMYK color spaces). Optionally, the image file maybe in SVG, PDF, GIF, Encapsulated PostScript, AutoCAD DFX, or ADOBEILLUSTRATOR format. Optionally, one or more files may be compressed(e.g., losslessly compressed) and transmitted to the manufacturingsystem 106 in the form of a zip file, jar file or other file format. Themanufacturing system 106 may then decompress the file using anappropriate decompression module.

The inventory/ordering system 104 may receive and process an order for acustomized item, generate prices for a customized item (e.g., based on abase item price, the number of customizations, and/or the type ofcustomizations), maintain a user shopping cart, and generally interactwith a user ordering an item and managing the ordering process. Theinventory/ordering system 104, when receiving an order for a customizeditem customized using the CAD system 102, may determine if the itembeing designed/modified is in stock, and order items that are below aspecified threshold (e.g., zero or some number greater than zero).

The packing/shipping system 108 may generate packing instructions toefficiently package the items being shipped to the user. For example,the instructions may specify package sizes and which items are to beshipped in which package. The packing/shipping system 108 may furthergenerate shipping labels and/or other shipping documents.

One or more data source systems 103 may provide real time and/ornon-real time data which may be accessed by the CAD system 102 via anAPI or otherwise. Such data may be utilized in populating andcustomizing templates as described elsewhere herein. For example, thedata may include sports scores, player and team statistics, award showannouncements, weather information, news data, and/or other data.

An analysis system 118 may be configured to analyze user modificationsto design elements and/or user added or selected content (e.g., imagesand/or text) associated by the user with the design elements. Theanalysis system 118 may be configured to receive a query generated bythe CAD system 102 that specifies one or more different feature types tobe detected. The CAD system 102 may generate the query based at least inpart on rules specified by a source of the design elements. The rulesmay indicate how a design element may be modified and what content maybe used in conjunction with the design element (e.g., overlaying thedesign element, or directly to one side of the design element). Theanalysis system 118 may generate a likelihood indication/value as towhether a given feature type is present. The likelihood indication/valuemay be provided to the CAD system 102, which may determine, using suchindication, whether or not the modification and/or associated user addedor selected content may be used and/or shared by the user.

The analysis system 118 may utilize artificial intelligence and/ormachine learning in performing text, image (e.g., using computervision), and/or audio analysis to determine the likelihood that given afeature type is present (e.g., the presence of a face by performing facedetection) and/or to perform face recognition. For example, the analysissystem 118 may utilize a deep neural network (e.g., a convolutional deepneural network) and/or a matching engine in performing facial, image,text, and/or audio analysis.

FIG. 1B is a block diagram illustrating an embodiment of examplecomponents of the CAD system 102. The example CAD system 102 includes anarrangement of computer hardware and software components that may beused to implement aspects of the present disclosure. Those skilled inthe art will appreciate that the example components may include more (orfewer) components than those depicted in FIG. 1B.

The CAD system 102 may include one or more processing units 120B (e.g.,a general purpose process and/or a high speed graphics processor withintegrated transform, lighting, triangle setup/clipping, and/orrendering engines), one or more network interfaces 122B, anon-transitory computer-readable medium drive 124B, and an input/outputdevice interface 126B, all of which may communicate with one another byway of one or more communication buses. The network interface 122B mayprovide the CAD services with connectivity to one or more networks orcomputing systems. The processing unit 120B may thus receive informationand instructions from other computing devices, systems, or services viaa network. The processing unit 120B may also communicate to and frommemory 12B4 and further provide output information via the input/outputdevice interface 126B. The input/output device interface 126B may alsoaccept input from one or more input devices, such as a keyboard, mouse,digital pen, touch screen, microphone, camera, etc.

The memory 128B may contain computer program instructions that theprocessing unit 120B may execute in order to implement one or moreaspects of the present disclosure. The memory 120B generally includesRAM, ROM (and variants thereof, such as EEPROM) and/or other persistentor non-transitory computer-readable storage media. The memory 120B maystore an operating system 132B that provides computer programinstructions for use by the processing unit 120B in the generaladministration and operation of the CAD application module 134B,including it components. The memory 128B may store user accounts,including copies of a user's intellectual property assets (e.g., logos,brand names, photographs, graphics, animations, videos, sound files,stickers, tag lines, etc.) and groupings thereof (with associated groupnames). Optionally, in addition or instead, the intellectual propertyassets are stored remotely on a cloud based or other networked datastore.

The copies of the intellectual property assets and captured images mayoptionally be stored in a relational database, an SQL database, a NOSQLdatabase, or other database type. Because the assets may include BLOBs(binary large objects), such as videos and large images, which aredifficult for conventional database to handle, some (e.g., BLOBs) or allof the assets may be stored in files and corresponding references may bestored in the database. The CAD application module components mayinclude a GUI component that generates graphical user interfaces andprocesses user inputs, and a design enforcement component to ensure thatuser designs do not violate respective permissions/restrictions.

A template rules execution component is utilized to execute rulesassociated with a template. For example, a rule may specify how topropagate user template edits to one design elements to other designelements of the template. By way of further example, a template rule mayspecify that if a user makes a first type of edit to a first templatedesign element, the user may be prevented from making certain edits toother template design elements (e.g., edits that would be logicallyincompatible with the edit to the first design element). A rule may bedefined using if-then statements comprising Boolean condition (includinga variable and an operator, such as equal, not-equal, greater then, lessthen, etc.)) and a consequent.

A CAD file generator may be configured to generate data files for aninputted user design, and/or an image generator that generates imagedata files for printing and/or sewing/embroidering machines.

The printing machines may utilize, by way of example, 3D additiveprinting, heat transfer vinyl, screen printing, direct to garmentprinting, sublimation printing, and/or transfer printing to print designelements on an item. By way of further example, embroidery machines maybe used to embroider design elements on an item. The memory 128B mayfurther include other information for implementing aspects of thepresent disclosure.

The memory 128B may include an interface module 130B. The interfacemodule 130B can be configured to facilitate generating one or moreinterfaces through which a compatible computing device, may send to, orreceive from, the CAD application module 134B data and designs.

The modules or components described above may also include additionalmodules or may be implemented by computing devices that may not bedepicted in FIGS. 1A and 1B. For example, although the interface module130B and the CAD application module 134B are identified in FIG. 1B assingle modules, the modules may be implemented by two or more modulesand in a distributed manner. By way of further example, the processingunit 120B may include a general purpose processor and a graphicsprocessing unit (GPU). The CAD system 104 may offload compute-intensiveportions of the applications to the GPU, while other code may run on thegeneral purpose processor. The GPU may include hundreds or thousands ofcore processors configured to process tasks in parallel. The GPU mayinclude high speed memory dedicated for graphics processing tasks. Asanother example, the CAD system 102 and their components can beimplemented by network servers, application servers, cloud-base systems,database servers, combinations of the same, or the like, configured tofacilitate data transmission to and from data stores, client terminals,and third party systems via one or more networks. Accordingly, thedepictions of the modules are illustrative in nature.

FIGS. 2A-2B illustrate example operations that may be performed withrespect to an end user in customizing an item using a templateassociated with template rules. In this example, the template relates toa tournament, such as the NCAA Division I men's basketball tournament,but the process may similarly be used with respect to other types oftemplates and template rules.

At block 202, an interactive item selection interface may be enabled tobe rendered on a user device (e.g., via a browser or dedicatedapplication). The interactive item selection interface may display orprovide access to a catalog of items and a user item selection isreceived via the interactive item selection interface. At block 204, acomputer aided design (CAD) user interface is enabled to be rendered onthe user device. For example, the CAD user interface may display animage of the item selected by a user and a menu of available templates.

By way of illustration, the menu of available templates may includetemplates that include tournament brackets (e.g., brackets forprofessional, college, or high school basketball tournaments, footballtournaments, hockey tournaments, baseball tournaments, tennistournaments, and/or the like), and associated design elements. Forexample, the design elements associated with a bracket may include oneor more tournament logos, one or more versions of basketballs for abasketball tournament bracket, one or more versions of basketball hoopsfor a basketball tournament bracket, one or more versions of hockeypucks for a hockey tournament bracket, one or more versions ofbasketball nets for a basketball tournament bracket, one or moreversions of baseballs for a baseball tournament bracket, one or moreversions of baseball bats for a baseball tournament bracket, one or moreversions of footballs for a football tournament bracket, one or moreversions of football goal posts for a football tournament bracket, oneor more versions of soccer balls for a soccer tournament bracket, one ormore versions of hockey goals for a hockey tournament bracket, one ormore versions of hockey sticks for a hockey tournament bracket, and/orthe like.

At block 206, a user template selection may be received. In thisexample, it will be assumed that the user has selected a templatecomprising a tournament bracket and/or or more related design elements(e.g., a basketball tournament bracket, a tournament logo, a basketball,and a basketball net, and/or a gallery of content that the user mayselect from (which may include design elements, such as text, teamlogos, tournament brackets (e.g., for one or more tournaments, bandlogos, etc.).

At block 208, rules associated with the template may be accessed frommemory. For example, the rules may specify propagation rules, wherein ifa user selects, enters, or modifies a given design element, othertemplate design elements may automatically be added, replaced, ormodified accordingly. By way of further example, the rules may include arule that prohibits user modifications of the template that would beincompatible with what a design element corresponds to. For example, ifthe template includes a tournament/match bracket where the user mayselect, from a match between a first team and a second team, the firstteam as a winner in one round, a rule may be prevent the user frominserting the losing second team as a participant at a later round. Byway of further example, if a match has already taken place and thetemplate is prepopulated with the match winner at the correspondingbracket branch, the user may be inhibited from changing the matchwinner.

The template/tournament bracket may be associated with a locator (e.g.,a URL or file path) for accessing the current tournament status. Forexample, the tournament status may be accessed, at block 210, from atournament organizer website, a news website, a local data store, orotherwise (e.g., using an API, where the status may be accessed in JSON,XML, and/or CSV formats). By way of illustration, the status may be “notyet seeded,” “seeded but no games played,” first round played, secondround played, etc.

Optionally, if the status is “not yet seeded,” a correspondingnotification may be provided to the user and optionally, the user may beinhibited from using and/or customizing the template for use incustomizing a product.

At block 212, the bracket may be prepopulated in part or in whole withdefault data accessed from a source, optionally, based at least in parton the tournament status. For example, if the status is “seeded but nogames played,” the bracket seeding may be accessed from tournamentorganizer website (e.g., the NCAA website for a college tournament). Byway of further example, if the status is “seeded but no games played,”the outmost branches of the bracket may be prepopulated using thebracket seeds (e.g., accessed from the tournament organizer, news, orother website) the NCAA website for a college tournament), and theremainder of the bracket branches may be left blank (e.g., for the userto customize using user predictions).

At block 214, the pre-populated template (e.g., bracket and relateddesign elements) may be rendered on the user device. For example, if thetemplate includes a tournament bracket, the bracket may be pre-populatedwith the names and/or logos associated with the teams participating inthe tournament.

At block 216, with respect to tournament rounds that have not yetoccurred, a user interface may be presented via which the user mayoptionally select a source (e.g., a news source, a blog, etc.) forpopulating predictions from the source to populate some or all of thetournament bracket, where the user may then edit the populated values.If the user indicates that the user wants to populate the template usingprediction data for a selected source, at block 218, the selectedpredication source is accessed (e.g., over a network). At block 220, thetemplate may be rendered in a user interface on the user device usingthe actual tournament data (e.g., for tournament rounds that have takenplace) and predicted tournament data.

At block 222, user template edits (which may be in the form of userselections) may be received from the user device via the user interface.For example, the user may select a winner of a match (e.g., by touchingor clicking on an identifier associated with a match participant) inorder to populate the next bracket round. At block 224, a determinationmay be made as to whether there is a propagation rule associated withthe user edits. If there is a propagation rule, at block 226, thetemplate may be updated in accordance with the propagation rule. Forexample, if the user selects a winning team for a match, a color ofanother design element (e.g., the corresponding bracket branch) may beautomatically changed to match the sports team's color.

At block 227, a further user template edit may be received. For example,the edit may be a user specification of a tournament match round to alater round than the round associated with the previous user edit. Atblock 228, a determination may be made as to whether the user editsviolates a rule. For example, if the template includes atournament/match bracket where the user may select, a first team as awinner in one round, a rule may be prevent the user from inserting thelosing second team as a participant at a later round. Thus, at block228, if the process detects that the user has selected a team, that waseliminated from the tournament (e.g., as a result of losing a match), asa winner at a later round, a determination may be made that a ruleviolation occurred. By way of further example, if a determination ismade that the user has changed a winner of a match that has alreadyoccurred, a determination may be made that a rule violation occurred.Optionally, edit tools may instead be disabled where any edit wouldviolate a rule.

If a rule violation occurred, at block 230, the user edit may beautomatically reversed and a notification of the rule violation may bepresented to the user.

If the user activates an order/manufacturing control, at block 236 (andoptionally in response to a determination that the customizations complywith design rules), the item may be accordingly customized and providedto the user.

For example, one or more files including the object data and/or thecustomization data may be transmitted over a network to printing machinefor printing. The customized template design elements may be printed orembroidered on the item. For example, the printer may use heat transfervinyl, screen printing, direct to garment printing, sublimationprinting, and/or transfer printing. By way of further example, theprinter may be a 3D printer that prints the customized item.

FIG. 3A illustrates an example portion of a template for a sportstournament. The example template includes a bracket and a tournamentlogo. In this example, only a portion of the bracket is displayed (for asouthern conference). Conference controls (East, West, Midwest, South)are provided that, when activated causes the user interface to display azoomed portion of the bracket corresponding to the selected conference.A full control is provided that when activated cause the user interfaceto zoom out to show the entire bracket. Thus, the foregoing userinterface enable a use to efficiently navigate and edit even a complex,detailed template on a relatively small display device (e.g., a phonewith a touch display in the range of 4-7 inches in the diagonal).

Descriptive text is automatically updated to indicate the conferencecorresponding to the displayed portion of the bracket, and the accessedtournament status (e.g., round of 64, round of 32, Sweet 16, Elite 8,Final 4, Championship). The user interface may automatically select amatch or the user may select a match via the bracket (e.g., by touchinga corresponding bracket branch). Identifiers (e.g., team name and/orlogo) corresponding to the teams participating in the selected match maybe automatically be presented in a match field, optionally inassociation with the seeding/ranking of each team. An import menuinterface may be provided via which the user can import bracket matchpredictions, which may be used to populate the bracket.

The system may analyze the accuracy of predictions of different userswith respect to predicted match winners. The system analysis may be usedto generate a leaderboard with identifiers of the top predictors (e.g.,the top 5, top 10, or top 20 predictors) in association with theprediction accuracy scores, and winner predictions.

A size control may be provided via which the user can select a size(e.g., small, medium, large, extra-large, extra-extra-large, etc.) ofthe object (e.g., hoody, t-shirt, bag, etc.) being customized. Aquantity control may be provided via which the user can specify aquantity of the object being ordered. An add to cart control may beprovided which, when activated, causes the object to be added to anelectronic shopping cart, with an association to the selected objectsize, quantity, selected template, and user template customization. Acheckout control may be provided, which when activated, enables apurchase process to be initiated via which the user can purchase thecustomized object. Once the order is completed, the object may then becustomized using the user template customization as described elsewhereherein.

FIG. 3B illustrates an interface that includes a link to an “add linkedslot” control and an “import CSV with slot rules” control. Useractivation of the “add linked slot” control may cause the user interfaceillustrated in FIG. 3C to be presented, which, as will be described,enables the user to define rules (e.g., conditional statements, such asif-then rules) associated with one or more slots of a template. Useractivation of the “import CSV with slot rules” control may cause theuser interface illustrated in FIG. 3E to be presented, which, as will bedescribed, enables the user to import slot rules in the form of a CSV(comma separated values) file (e.g., generated using a spreadsheet orother application).

FIG. 3C illustrates an example rule definition user interface. Forexample, the rule definition user interface may enable a conditionalstatement, such as an if-then statement comprising an “if” portion(e.g., Boolean condition (including a variable and an operator, such asequal, not-equal, greater then, less then, etc.)) and a “then” portion(a consequent). Interfaces may be provided via which the user canspecify rule triggers (e.g., “If” statement). For example, a slotcontrol is provided which when the user can specify from a menu of slotsfor which tournament bracket slot/match the rule is to be associatedwith. An operator control may be provided via which the user can specifya rule operator (e.g., equal, not equal, etc.) from a menu of operators.An asset interface is provided via which the user can specify an asset(e.g., a team name) from a menu of assets.

Interfaces maybe provided via which the user can specify what action(e.g., a “then” consequent statement) is to be taken in response to the“if” conditional statement being satisfied. For example, a slot controlis provided which when the user can specify from a menu of slots forwhich tournament bracket slot/match the rule action is to be associatedwith. An operator control may be provided via which the user can specifya rule action operator (e.g., equal, not equal, greater than, or lessthan, etc.) from a menu of operators. For example, a rule may specify an“if” statement where if a given slot/bracket branch has a specifiedimage, graphic or text, then another slot will be populated with aspecified image or text, or a color of an image, graphic, or text may bechanged to a specified, different color.

Optionally, a rule may be based on real time, real event data, such as acurrent score, an inning result at a baseball game, a halftime result ata football game, an announcement of a most valuable player designation,and or the like. The real time data may be accessed via an API over anetwork from one or more remote sources (e.g., a news feed, a sportsfeed, etc.) using one or more formats (e.g., JSON, XML, and/or CSVformats). Thus, a template may change in real time based on usermodifications and/or real time external event data.

Optionally, a rule may include a chain of conditional and consequentstatements (e.g., “if” and “then” statements). For example, a rule mayspecify:

If slot “A” has an asset=asset #1; and

If slot “B” has an asset≠asset #2; and

If value in Slot “F”>20;

Then:

Slot “C”=asset #5; and

Color of asset in Slot “D”=blue.

For example, the value in slot “F” may correspond to a score from atournament match.

Optionally, a rule may include an event type (e.g., a particular play)detected during a match (e.g., via a sports news feed). For example, arule may specify for a baseball game:

If slot “A” has an asset=asset #1; and

If “triple play”;

Then:

Slot “B”=asset #2; and

Color of asset in Slot “C”=gold.

Optionally, where the template relates to an award ceremony or a like, arule may include an event type (e.g., a grant of an award to aperformer, such as a singer, musical group, actor, etc.) detected duringthe ceremony. For example, a rule may specify for a musical awardceremony:

If slot “A” has an asset=asset #1; and

If best_new_artist award announced

Then:

Slot “B”=name_of best_new_artist.

Example rules and templates need not be associated with a competition ortournament. Rules may involve such events as album releases, comments ora web blog, weather conditions (e.g., temperature), ski conditions(e.g., the number of inches of snow on the ground in a selected skiarea), news event, etc.

A “remove action” control may be provided which when activated deletesthe most recently added “then” statement for the corresponding rule,where the system may store time tags and/or sequence indicatorsindicating the sequence in which “then” actions were added. For example,if the user activates the remove action control once, the system mayaccess the sequence indicators, identify the most recently added “then”action, and then delete the most recently added “then” action from theuser interface and/or memory. If the user activates the remove actioncontrol twice, the two most recently added “then” actions may beremoved, and so on. Optionally, the user may be prompted to confirm orcancel a remove instruction. Optionally, a remove all control may beprovided, which if activated, may delete all the “then” actions for therule.

An “add action for rule” control may be provided which when activatedcauses an additional action field (via which the user can cause aspecified action to be performed with respect to an associated templateslot).

A control which may be provided which when activated causes rulesdefined using the user interface illustrated in FIG. 3C (or imported asa CSV file) to be visually and logically displayed (such as illustratedin FIG. 3D) to enhance the ability to understand and detect errors inthe rule. Such a representation can be especially helpful with complexrules that include multiple “if” statements and multiple “then” actions.The user interface illustrating the rules may include text references toa visual asset (e.g., a graphic image, a photograph, etc.) and/orthumbnails of the visual assets to further enhance the ability tovisualize the rules and detect errors.

FIG. 3E illustrates an example CSV import field. The user may enter ornavigate to an address (e.g., a URL or file path) to the desired CSVfile. The contents of the accessed CSV file may then be displayed. Byway of example, the CSV may include, for a given rule, a template slotidentifier, a content item identifier, a slot action identifier and aslot image identifier, (e.g., a slotID, imageID, slotActionID,slotImageID).

FIG. 3F illustrates an example configuration user interface. The exampleuser interface includes a “tap to propagate” control that enables ordisables a user's ability to initiate activation of a propagation ruleby touch a slot or slot entry (e.g., tapping a team name on a tournamentbracket). A “moveable” control enables or disables a user's ability tomove a content item from one slot to another slot, and/or the ability tomove the content item to any desired location on the template. A“swappable” control enables or disables a user's ability to swap/switcha current content item (e.g., a team logo) in a slot to a differentcontent item (e.g., selected from a collection of content itemsspecified via one or more collections user interfaces). A customizableinterface enables or disables a user's ability to use user provided(e.g., uploaded or entered) content (e.g., a user selfie, other image,or text) to customize a template slot.

FIG. 3G illustrates an example object (a t-shirt in this example) with auser-customized template. In this example, the template includes adesign element comprising a basketball hoop, net, and basketball, anduser customized text (e.g., the user's name). A second design elementincludes a basketball hoop, net, and basketball, and a tournament name.A third design element may include a logo corresponding to a tournamentstage. A fourth design element may include a tournament bracket withprepopulated team names on certain branches and user specified teamnames on certain other branches.

Thus, aspects of the disclosure relate to enhancement in the computeraided design and customization of physical and digital items.

The methods and processes described herein may have fewer or additionalsteps or states and the steps or states may be performed in a differentorder. Not all steps or states need to be reached. The methods andprocesses described herein may be embodied in, and fully or partiallyautomated via, software code modules executed by one or more generalpurpose computers. The code modules may be stored in any type ofcomputer-readable medium or other computer storage device. Some or allof the methods may alternatively be embodied in whole or in part inspecialized computer hardware. The systems described herein mayoptionally include displays, user input devices (e.g., touchscreen,keyboard, mouse, voice recognition, etc.), network interfaces, etc.

The results of the disclosed methods may be stored in any type ofcomputer data repository, such as relational databases and flat filesystems that use volatile and/or non-volatile memory (e.g., magneticdisk storage, optical storage, EEPROM and/or solid state RAM).

The various illustrative logical blocks, modules, routines, andalgorithm steps described in connection with the embodiments disclosedherein can be implemented as electronic hardware, computer software, orcombinations of both. To clearly illustrate this interchangeability ofhardware and software, various illustrative components, blocks, modules,and steps have been described above generally in terms of theirfunctionality. Whether such functionality is implemented as hardware orsoftware depends upon the particular application and design constraintsimposed on the overall system. The described functionality can beimplemented in varying ways for each particular application, but suchimplementation decisions should not be interpreted as causing adeparture from the scope of the disclosure.

Moreover, the various illustrative logical blocks and modules describedin connection with the embodiments disclosed herein can be implementedor performed by a machine, such as a processor device, a digital signalprocessor (DSP), an application specific integrated circuit (ASIC), afield programmable gate array (FPGA) or other programmable logic device,discrete gate or transistor logic, discrete hardware components, or anycombination thereof designed to perform the functions described herein.A processor device can be a microprocessor, but in the alternative, theprocessor device can be a controller, microcontroller, or state machine,combinations of the same, or the like. A processor device can includeelectrical circuitry configured to process computer-executableinstructions. In another embodiment, a processor device includes an FPGAor other programmable device that performs logic operations withoutprocessing computer-executable instructions. A processor device can alsobe implemented as a combination of computing devices, e.g., acombination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration. Although described hereinprimarily with respect to digital technology, a processor device mayalso include primarily analog components. For example, some or all ofthe rendering techniques described herein may be implemented in analogcircuitry or mixed analog and digital circuitry. A computing environmentcan include any type of computer system, including, but not limited to,a computer system based on a microprocessor, a mainframe computer, adigital signal processor, a portable computing device, a devicecontroller, or a computational engine within an appliance, to name afew.

The elements of a method, process, routine, or algorithm described inconnection with the embodiments disclosed herein can be embodieddirectly in hardware, in a software module executed by a processordevice, or in a combination of the two. A software module can reside inRAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory,registers, hard disk, a removable disk, a CD-ROM, or any other form of anon-transitory computer-readable storage medium. An exemplary storagemedium can be coupled to the processor device such that the processordevice can read information from, and write information to, the storagemedium. In the alternative, the storage medium can be integer to theprocessor device. The processor device and the storage medium can residein an ASIC. The ASIC can reside in a user terminal. In the alternative,the processor device and the storage medium can reside as discretecomponents in a user terminal.

Conditional language used herein, such as, among others, “can,” “may,”“might,” “may,” “e.g.,” and the like, unless specifically statedotherwise, or otherwise understood within the context as used, isgenerally intended to convey that certain embodiments include, whileother embodiments do not include, certain features, elements and/orsteps. Thus, such conditional language is not generally intended toimply that features, elements and/or steps are in any way required forone or more embodiments or that one or more embodiments necessarilyinclude logic for deciding, with or without other input or prompting,whether these features, elements and/or steps are included or are to beperformed in any particular embodiment. The terms “comprising,”“including,” “having,” and the like are synonymous and are usedinclusively, in an open-ended fashion, and do not exclude additionalelements, features, acts, operations, and so forth. Also, the term “or”is used in its inclusive sense (and not in its exclusive sense) so thatwhen used, for example, to connect a list of elements, the term “or”means one, some, or all of the elements in the list.

Disjunctive language such as the phrase “at least one of X, Y, Z,”unless specifically stated otherwise, is otherwise understood with thecontext as used in general to present that an item, term, etc., may beeither X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z).Thus, such disjunctive language is not generally intended to, and shouldnot, imply that certain embodiments require at least one of X, at leastone of Y, or at least one of Z to each be present.

While the phrase “click” may be used with respect to a user selecting acontrol, menu selection, or the like, other user inputs may be used,such as voice commands, text entry, gestures, etc. For example, a clickmay be in the form of a user touch (via finger or stylus) on a touchscreen, or in the form of a user moving a cursor (using a mouse ofkeyboard navigation keys) to a displayed object and activating aphysical control (e.g., a mouse button or keyboard key). User inputsmay, by way of example, be provided via an interface or in response to aprompt (e.g., a voice or text prompt). By way of example an interfacemay include text fields, wherein a user provides input by entering textinto the field. By way of further example, a user input may be receivedvia a menu selection (e.g., a drop down menu, a list or otherarrangement via which the user can check via a check box or otherwisemake a selection or selections, a group of individually selectableicons, a menu selection made via an interactive voice response system,etc.). When the user provides an input or activates a control, acorresponding computing system may perform a corresponding operation(e.g., store the user input, process the user input, provide a responseto the user input, etc.). Some or all of the data, inputs andinstructions provided by a user may optionally be stored in a systemdata store (e.g., a database), from which the system may access andretrieve such data, inputs, and instructions. The notifications and userinterfaces described herein may be provided via a Web page, a dedicatedor non-dedicated phone application, computer application, a shortmessaging service message (e.g., SMS, MMS, etc.), instant messaging,email, push notification, audibly, and/or otherwise.

The user terminals described herein may be in the form of a mobilecommunication device (e.g., a cell phone, a VoIP equipped mobile device,etc.), laptop, tablet computer, interactive television, game console,media streaming device, head-wearable display, virtual realitydisplay/headset, augmented reality display/headset, networked watch,etc. The user terminals may optionally include displays, user inputdevices (e.g., touchscreen, keyboard, mouse, voice recognition, etc.),network interfaces, etc.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it can beunderstood that various omissions, substitutions, and changes in theform and details of the devices or algorithms illustrated can be madewithout departing from the spirit of the disclosure. As can berecognized, certain embodiments described herein can be embodied withina form that does not provide all of the features and benefits set forthherein, as some features can be used or practiced separately fromothers.

1. (canceled)
 2. A computer-aided design (CAD) computer systemcomprising: a computing device; a network interface; and anon-transitory data media configured to store instructions that whenexecuted by the computing device, cause the computing device to performoperations comprising: provide, to a user device of a user, the userdevice comprising hardware, a design rule definition user interfacecomprising: a conditional specification user interface enabling anif-then operation to be defined, the conditional specification userinterface comprising: an “if” set of fields enabling an “if” statementto be specified, the “if” set of fields comprising:  a first fieldenabling:  specification of a first template slot for a first template,and  a specification of a first item of content;  a second fieldconfigured to receive a specification of a comparison operator via acomparison operator menu comprising:  as equal operator,  a not-equaloperator,  a greater than operator, and  a less then operator,  alogical operator  a third field configured to receive a specification ofa second item of content, where a specified comparison operator is usedto compare the first item of content and the second item of content;  a“then” set of fields enabling a “then” statement to be specified, the“then” set of fields comprising:  a fourth field comprising a slot menuvia which a second template slot of the first template may be selected; a fifth slot enabling a third item of content to be specified for theslot specified via the fourth field, wherein the third item of contentis displayed in response to the “if” statement being satisfied; receivea definition of a first rule, comprising a first “if” statement and afirst “then” statement, specified via the conditional specification userinterface, comprising the “if” set of fields and the “then” set offields, for a first customizable template, wherein the definition of thefirst rule includes: a specification, via the first field, of a firstcustomizable template slot for the first customizable template and afirst specified item of content; a specification of a first specifiedcomparison operator via the comparison operator menu; a specification,via the third field, of a second specified item of content; aspecification, via the fourth field slot menu, of a second specifiedslot for the first customizable template; a specification, via the fifthfield, of a second specified item of content to be displayed via thesecond specified slot specified via the fourth field in response to thefirst “if” statement being satisfied; receive, via the network interfacefrom a second user device of second user, a user selection of an imageof a product from an interactive catalog; enable the second user toselect, via a size selection user interface, a size for the product;receive a size selection of a first size via the size selection userinterface; enable a representation of the product to be presented on thesecond user device; receive a specification from the second user ofa-specified item of content for the first customizable slot of the firstcustomizable template; apply the first rule specified via theconditional specification user interface and evaluate the first “if”statement based at least in part on the specification from the seconduser of the-specified item of content for the first customizable slot ofthe first customizable template; at least partly in response to thefirst “if” statement being satisfied, cause the second specified item ofcontent to be displayed at the second specified slot; causing a file tobe generated comprising specified item of content for the firstcustomizable slot of the first customizable template; and transmittingover a network the file comprising the specified item of content for thefirst customizable slot of the first customizable template and thesecond specified item of content to a device separate from the CADcomputer system, and cause the first customizable template, includingthe specified item of content for the first customizable slot of thefirst customizable template and the second specified item of content, tobe printed or embroidered on a physical instance of the product in theselected first size.
 3. The CAD system as defined in claim 2, wherein atleast one item of content used in evaluating the first rule comprisesreal time data.
 4. The CAD system as defined in claim 2, whereinapplication of the first rule causes a first color associated with thefirst customizable template to be changed at least partly in response tothe first “if” statement being satisfied.
 5. The CAD system as definedin claim 2, wherein the second specified item of content comprises anumerical value.
 6. The CAD system as defined in claim 2, the operationsfurther comprising: enable a rule to be imported via a file comprising atemplate slot identifier, a content item identifier, and a specifiedcomparison operator.
 7. The CAD system as defined in claim 2, theoperations further comprising provide a “remove action” control whichwhen activated deletes a most recently added “then” statement for acorresponding rule, and storing time tags and/or sequence indicatorsindicating a sequence in which “then” actions were added.
 8. The CADsystem as defined in claim 2, the operations further comprising providea “remove action” control which when activated deletes a most recentlyadded “then” statement for a corresponding rule.
 9. Acomputer-implemented method, the method comprising: providing, using acomputer system, to a user device of a user a design rule definitionuser interface comprising: a conditional specification user interfaceenabling an if-then operation to be defined, the conditionalspecification user interface comprising: an “if” set of fields enablingan “if” statement to be specified, the “if” set of fields comprising: afirst field enabling:  specification of a first template slot for afirst template, and  a specification of a first item of content; asecond field configured to receive a specification of an operatorcomprising:  as equal operator,  a not-equal operator,  a greater thanoperator, and  a less then operator,  a logical operator  a third fieldconfigured to receive a specification of a second item of content; wherea specified operator is used to compare the first item of content andthe second item of content; a “then” set of fields enabling a “then”statement to be specified, the “then” set of fields comprising:  afourth field comprising a slot menu via which a second template slot ofthe first template may be selected;  a fifth slot enabling a third itemof content to be specified for the slot specified via the fourth field,wherein the third item of content is utilized in response to the “if”statement being satisfied; receiving a definition of a first rule,comprising a first “if” statement and a first “then” statement,specified via the conditional specification user interface, comprisingthe “if” set of fields and the “then” set of fields, for a firstcustomizable template, wherein the definition of the first ruleincludes: a specification, via the first field, of a first customizabletemplate slot for the first customizable template and a first specifieditem of content; a specification of a first specified operator; aspecification, via the third field, of a second specified item ofcontent; a specification, via the fourth field slot menu, of a secondspecified slot for the first customizable template; a specification, viathe fifth field, of a second specified item of content to be utilizedvia the second specified slot specified via the fourth field in responseto the first “if” statement being satisfied; enabling a representationof a product to be presented on a user device of a second user, theproduct associated with a first customizable template; receiving fromthe user device of the second user a specification of a-specified itemof content for the first customizable slot of the first customizabletemplate; applying the first rule specified via the conditionalspecification user interface and evaluating the first “if” statement issatisfied based at least in part on the specification of the-specifieditem of content for the first customizable slot of the firstcustomizable template; at least partly in response to the first “if”statement being satisfied, cause the second specified item of content tobe displayed at the second specified slot; causing a file to begenerated comprising the specified item of content for the firstcustomizable slot of the first customizable template and the secondspecified item of content; and transmitting over a network the filecomprising the specified item of content for the first customizable slotof the first customizable template and the second specified item ofcontent to a device, and enable the first customizable template, to beprinted or embroidered on a physical instance of the product.
 10. Thecomputer-implemented method as defined in claim 9, wherein at least oneitem of content used in evaluating the first rule comprises real timedata.
 11. The computer-implemented method as defined in claim 9, whereinapplication of the first rule causes a first color associated with thefirst customizable template to be changed at least partly in response tothe first “if” statement being satisfied.
 12. The computer-implementedmethod as defined in claim 9, wherein the second specified item ofcontent comprises a numerical value.
 13. The computer-implemented methodas defined in claim 9, the method further comprising: enabling a rule tobe imported via a file comprising a template slot identifier, a contentitem identifier, and a specified operator.
 14. The computer-implementedmethod as defined in claim 9, the method further comprising providing a“remove action” control which when activated deletes a most recentlyadded “then” statement for a corresponding rule, and storing time tagsand/or sequence indicators indicating a sequence in which “then” actionswere added.
 15. The computer-implemented method as defined in claim 9,the method further comprising providing a “remove action” control whichwhen activated deletes a most recently added “then” statement for acorresponding rule.
 16. A computer system comprising: a computingdevice; a network interface; and a non-transitory data media configuredto store instructions that when executed by the computing device, causethe computing device to perform operations comprising: receive, usingthe network interface, a first rule via a design rule definition userinterface comprising: a conditional specification user interfaceenabling an if-then operation to be defined, the conditionalspecification user interface comprising: an “if” set of fields enablingan “if” statement to be specified, the “if” set of fields comprising:  afirst field enabling:  specification of a first template slot for afirst template, and  a specification of a first item of content;  asecond field configured to receive a specification of a comparisonoperator;  a third field configured to receive a specification of asecond item of content, where a specified comparison operator is used tocompare the first item of content and the second item of content; a“then” set of fields enabling a “then” statement to be specified, the“then” set of fields comprising:  a fourth field comprising a slot menuvia which a second template slot of the first template may be selected; a fifth slot enabling a third item of content to be specified for theslot specified via the fourth field; wherein the definition of the firstrule includes: a specification, via the first field, of a firstcustomizable template slot for the first customizable template and afirst specified item of content; a specification of a first specifiedcomparison operator via the comparison operator menu; a specification,via the third field, of a second specified item of content; aspecification, via the fourth field slot menu, of a second specifiedslot for the first customizable template; a specification, via the fifthfield, of a second specified item of content to be utilized via thesecond specified slot specified via the fourth field in response to the“if” statement being satisfied; enable a representation of an object tobe presented on a user device, the object associated with a firstcustomizable template; receive a user specification of a firstuser-specified item of content for the first customizable slot of thefirst customizable template; apply the first rule specified via theconditional specification user interface and evaluate the “if” statementbased at least in part on the specification of the first user-specifieditem of content for the first customizable slot of the firstcustomizable template; at least partly in response to the “if” statementbeing satisfied, cause the second specified item of content to beutilized with respect to the second specified slot; and transmit a filecomprising the first user-specified item of content and the secondspecified item of content to a device configured to be print orembroider content on a physical instance of the object.
 17. The computersystem as defined in claim 16, wherein at least one item of content usedin evaluating the first rule comprises real time data.
 18. The computersystem as defined in claim 16, wherein application of the first rulecauses a first color associated with the first customizable template tobe changed at least partly in response to the “if” statement beingsatisfied.
 19. The computer system as defined in claim 16, wherein thesecond specified item of content comprises a numerical value.
 20. Thecomputer system as defined in claim 16, the operations furthercomprising: enable a rule to be imported via a file comprising atemplate slot identifier, a content item identifier, and a specifiedcomparison operator.
 21. The computer system as defined in claim 16, theoperations further comprising provide a “remove action” control whichwhen activated deletes a most recently added “then” statement for acorresponding rule, and storing time tags and/or sequence indicatorsindicating a sequence in which “then” actions were added.
 22. Thecomputer system as defined in claim 16, the operations furthercomprising provide a “remove action” control which when activateddeletes a most recently added “then” statement for a corresponding rule.